package com.dxf.chepter08

import scala.collection.mutable.ArrayBuffer

/**
 * scala集合介绍:
 * 1 scala同时支持不可变集合(线程安全)和可变集合
 * 2 主要包:
 *        scala.collection.immutable
 *        scala.collection.mutable
 * 3 scala默认采用不可变集合.对于几乎所有的集合类,scala都同时提供了可变mutable 和不可变 immutable的版本
 * 4 scala集合有三类, 序列Seq ,集Set.映射Map,所有集合都扩展自Iterable特质,在Scala中集合有可变mutable 和
 * 不可变immutable两种类型
 *
 *
 *
 *
 *
 * 不可变集合 :
 *
 * SortedSet -- TreeSet
 * HashSet
 * --Set --- BitSet
 * ListSet
 *
 * SortedMap   -- TreeMap
 * Iterable    --Map --- HashMap
 * ListMap
 * Vector
 * --Seq  --- IndexedSeq(索引序列) --  NumericRange
 * Array(数组)
 * String
 * Range
 *
 * List
 * LinearSeq(线性序列)  --   Stream            有头有尾
 * Queue(队列)
 * Stack(栈)
 *
 *
 * 可变集合,比不可变集合范围更大
 *
 *
 * =============================================================
 * 元祖:
 * 1一个容器,可以存放不同或者相同类型的数据
 * 2将多个无关的数据封装为一个整体,
 * 3灵活,对数据没有过多约束
 * 4 元祖中最大只能有22个元素
 * 5 元祖遍历需要用迭代器
 *
 *
 * tuple为了高效操作,编译器根据元素个数不同,对应不同的元祖类型
 *
 * Tuple1 --Tuple22
 *
 *
 *
 *
 */
object T84_元祖 {


  def main(args: Array[String]): Unit = {
    val tuple1 = (11, 2, 3, "hello", "4")
    println(tuple1)

    println(tuple1._1)//第一个元素
    println(tuple1.productElement(0))//第0位

    println("===========================================")
    //遍历
    for(item <- tuple1.productIterator){
      println(item)
    }


  }


}

